package agenti;

import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.Behaviour;
import jade.lang.acl.ACLMessage;

import java.io.IOException;

import componenti.diagramDesigner.ArriviPartenze;
import componenti.diagramDesigner.NumeroUtentiNelBuffer;
import componenti.diagramDesigner.TempoAttesaInCoda;
import componenti.diagramDesigner.UtentiArrivatiPartiti;

@SuppressWarnings("serial")
public class RichiediGrafico extends Agent {
	private int x;
	private Double inizio;
	private Double fine;

	@Override
	protected void setup() {
		super.setup();
		x = (Integer) getArguments()[0];
		inizio = (Double) getArguments()[1];
		fine = (Double) getArguments()[2];
		addBehaviour(new Richiedi());
	}

	private class Richiedi extends Behaviour {
		@Override
		public void action() {
			ACLMessage msg = new ACLMessage(ACLMessage.REQUEST);
			try {
				switch (x) {
				case 0:
					String s = inizio.toString() + " " + fine.toString();
					System.out.println(s);
					msg.setContent(s);
					msg.setContentObject(new ArriviPartenze("Arrivi e Partenze",inizio,fine));
					break;
				case 1:
					
					String s1 = inizio.toString() + " " + fine.toString();
					msg.setContent(s1);
					msg.setContentObject(new TempoAttesaInCoda(
					"Tempo Attesa In Coda",inizio,fine));
					break;
				case 2:
					String s2 = inizio.toString() + " " + fine.toString();
					msg.setContent(s2);
					msg.setContentObject(new NumeroUtentiNelBuffer(
					"Numeri Utenti nel Buffer",inizio,fine));
					break;
				case 3:
					
					String s3 = inizio.toString() + " " + fine.toString();
					msg.setContent(s3);
					msg.setContentObject(new UtentiArrivatiPartiti(
					"Utenti arrivati e partiti",inizio,fine));
					break;

				default:
					break;
				}

			} catch (IOException e) {
				e.printStackTrace();
			}
			msg.addReceiver(new AID("AgenteMonitor", AID.ISLOCALNAME));
			send(msg);

		}

		@Override
		public boolean done() {
			doDelete();
			return false;
		}

	}
}